package jianzhiOffer;
//剑指 Offer 30. 包含min函数的栈
import java.util.Stack;

public class Num30_MinStack {
    Stack <Integer> stack1,stack2;
    public Num30_MinStack(){
        stack1 = new Stack<>();
        //存储最小元素的栈
        stack2 = new Stack<>();
    }
    public void push(int x) {
        stack1.add(x);
        if (stack2.isEmpty() || x<=stack2.peek()){
            stack2.add(x);
        }
    }

    public void pop() {
        if (stack1.pop().equals(stack2.peek())){
            stack2.pop();
        }

    }

    public int top() {
        return stack1.peek();


    }

    public int min() {
        return stack2.peek();

    }



//    Stack<Integer> stack1,stack2;
//    public Num30_MinStack() {
//        stack1 = new Stack<>();
//        //存储最小元素
//        stack2 = new Stack<>();
//
//    }
//
//    public void push(int x) {
//        stack1.add(x);
//        if (stack2.isEmpty()||stack2.peek()>=x){
//            stack2.add(x);
//        }
//
//    }
//
//    public void pop() {
//        if (stack1.pop().equals(stack2.peek())){
//            //出栈
//            stack2.pop();
//        }
//
//    }
//
//    public int top() {
//        return stack1.peek();
//
//
//    }
//
//    public int min() {
//        return stack2.peek();
//    }
//
//

}
